package org.myy.learn.hot.链表.两两交换;

public class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode dummy = new ListNode(-1, head);  //好处 1、统一操作  2、无需考虑 cur == null 的情况[cur.next != null && cur.next.next != null]
        ListNode cur = dummy;   //新起节点的好处，不影响dummy节点，从头输出
        while (cur.next != null && cur.next.next != null){
            ListNode node1 = cur.next;
            ListNode node2 = cur.next.next;
            cur.next = node2;
            node1.next = node2.next;   //这里必须在node2.next = node1;之前，否则node2.next直接断掉
            node2.next = node1;
            cur = node1;
        }
        return dummy.next;
    }
}
